A typical wireless communication system may comprise a plurality of wireless devices transmitting and receiving messages with each other. These messages are typically arranged in formatted groups of data called packets. Each packet may comprise a header and a payload. The header may be used by the wireless communication system for routing the packet to the desired recipient, whereas the payload represents the data generated by a user to be transmitted. Typically, the size of the packet varies based upon the amount of data in the payload.
As wireless communications systems have become more prevalent, a robust security infrastructure has become desirable. Several approaches to developing such a security infrastructure have been disclosed. For example, the messages transmitted in the wireless communication system may be encrypted using an encryption algorithm, for example, Wired Equivalent Privacy (WEP), Advanced Encryption Standard (AES), and Data Encryption Standard (DES). Within the typical wireless communication system, the messages are authenticated by using a cryptographic hash function.
A particularly advantageous cryptographic hash function is a secure hash algorithm (SHA), as originally disclosed by the National Security Agency (NSA). SHA's may be used in conjunction with several known encryption standards, for example, the aforementioned AES and DES. The SHA is typically divided into three sub-families: SHA-0, SHA-1, and SHA-2. During hashing with a SHA, the data is organized into blocks of bits, the number of bits being locked for the particular algorithm. More particularly, the SHA-0 and SHA-1 families each divide the data into 512 bit blocks for processing. The SHA-2 family uses an algorithm with a variable digest size, which is distinguished as SHA-224, SHA-256, SHA-384, and SHA-512, and as disclosed in U.S. Pat. No. 6,829,355 to Lilly. The processing block bit size for the SHA-2 family is variable. More particularly, the SHA-224 and SHA-256 sub-families have processing block sizes of 512 bits whereas the SHA-384 and SHA-512 sub-families have processing block sizes of 1024 bits.
Depending on the application, it may be desirable to use one SHA family over another. For example, United States Patent Application Publication No. 2003/0135743 to Scheuermann discloses a device for hashing data using the SHA-1 family. In other applications, it may be helpful to have capabilities to hash using more than one SHA family and/or hash algorithm.
For example, United States Patent Application Publication No. 2008/0123841 to Plessier discloses a hashing device that authenticates data using a plurality of hash encryption methods. More particularly, this device may use either the SHA-1 family or the Message-Digest algorithm 5 (MD5).
Another approach is the Helion Tiny Multi-mode Hash Core, as available from Helion Technology Limited of Cambridge, England. This Hash Core is implemented on a field-programmable gate array (FPSA) and is capable of implementing several hash methods, which include MD5, SHA-1 family, and the SHA-224/256 variants of SHA-2, i.e. only SHA variants that use 512 bits processing block sizes only. In other words, this Hash Core is not capable of SHA variants using processing blocks larger than 512 bits.